+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
* configure.in: added -posix check for NeXTStep
+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
* configure.in: added -posix check for NeXTStep
+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
* configure.in: added -posix check for NeXTStep
+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
* configure.in: added -posix check for NeXTStep
+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
* configure.in: added -posix check for NeXTStep
+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
* configure.in: added -posix check for NeXTStep
+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
* configure.in: added -posix check for NeXTStep
{
gulong pixel;
- if (image_info->visual->type == GDK_VISUAL_PSEUDO_COLOR)
+ if (image_info->bitmap)
+ {
+ return ((rgb & 0xff0000) >> 16) +
+ ((rgb & 0xff00) >> 7) +
+ (rgb & 0xff) > 510;
+ }
+ else if (image_info->visual->type == GDK_VISUAL_PSEUDO_COLOR)
pixel = colorcube[((rgb & 0xf00000) >> 12) |
((rgb & 0xf000) >> 8) |
((rgb & 0xf0) >> 4)];
((rgb & 0x8000) >> 12) |
((rgb & 0x80) >> 7)];
}
- else
+ else if (image_info->visual->type == GDK_VISUAL_TRUE_COLOR ||
+ image_info->visual->type == GDK_VISUAL_DIRECT_COLOR)
{
#ifdef VERBOSE
g_print ("shift, prec: r %d %d g %d %d b %d %d\n",
(8 - image_info->visual->blue_prec)) <<
image_info->visual->blue_shift));
}
+ else if (image_info->visual->type == GDK_VISUAL_STATIC_GRAY ||
+ image_info->visual->type == GDK_VISUAL_GRAYSCALE)
+ {
+ int gray = ((rgb & 0xff0000) >> 16) +
+ ((rgb & 0xff00) >> 7) +
+ (rgb & 0xff);
+
+ return gray >> (10 - image_info->visual->depth);
+ }
return pixel;
}
obptr[0] = (pix0 << 4) | pix1;
obptr++;
}
+ if (width & 1)
+ {
+ r = *bp2++;
+ g = *bp2++;
+ b = *bp2++;
+ pix0 = (g + ((b + r) >> 1)) >> shift;
+ obptr[0] = (pix0 << 4);
+ }
bptr += rowstride;
obuf += bpl;
}
obptr[0] = (pix0 << 4) | pix1;
obptr++;
}
+ if (width & 1)
+ {
+ r = *bp2++;
+ g = *bp2++;
+ b = *bp2++;
+ gray = (g + ((b + r) >> 1)) >> 1;
+ gray += (dmp[(x_align + x + 1) & (DM_WIDTH - 1)] << 2) >> prec;
+ pix0 = (gray - (gray >> prec)) >> right;
+ obptr[0] = (pix0 << 4);
+ }
bptr += rowstride;
obuf += bpl;
}
buf[x * 3 + 1] = cindex & 2 ? 0 : 255;
buf[x * 3 + 2] = cindex & 1 ? 0 : 255;
}
- for (y = 1; y < (HEIGHT * 3) / 4; y++)
+ for (y = 1; y < (HEIGHT * 19) / 32; y++)
{
memcpy (buf + y * WIDTH * 3, buf, WIDTH * 3);
}
- for (; y < (HEIGHT * 13) / 16; y++)
+ for (; y < (HEIGHT * 20) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = (x * 255) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 1] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 2] = 0;
+ }
+ }
+ for (; y < (HEIGHT * 21) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = (x * 255) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 1] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 2] = 0;
+ }
+ }
+ for (; y < (HEIGHT * 22) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = (x * 255) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 1] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 2] = gray;
+ }
+ }
+ for (; y < (HEIGHT * 24) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = 112 + (x * 31) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 1] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 2] = gray;
+ }
+ }
+ for (; y < (HEIGHT * 26) / 32; y++)
{
for (x = 0; x < WIDTH; x++)
{
buf[x * 3 + 1] = cindex & 2 ? 0 : 255;
buf[x * 3 + 2] = cindex & 1 ? 0 : 255;
}
- for (y = 1; y < (HEIGHT * 3) / 4; y++)
+ for (y = 1; y < (HEIGHT * 19) / 32; y++)
{
memcpy (buf + y * WIDTH * 3, buf, WIDTH * 3);
}
- for (; y < (HEIGHT * 13) / 16; y++)
+ for (; y < (HEIGHT * 20) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = (x * 255) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 1] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 2] = 0;
+ }
+ }
+ for (; y < (HEIGHT * 21) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = (x * 255) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 1] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 2] = 0;
+ }
+ }
+ for (; y < (HEIGHT * 22) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = (x * 255) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 1] = 0;
+ buf[y * WIDTH * 3 + x * 3 + 2] = gray;
+ }
+ }
+ for (; y < (HEIGHT * 24) / 32; y++)
+ {
+ for (x = 0; x < WIDTH; x++)
+ {
+ guchar gray;
+
+ gray = 112 + (x * 31) / (WIDTH - 1);
+ buf[y * WIDTH * 3 + x * 3] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 1] = gray;
+ buf[y * WIDTH * 3 + x * 3 + 2] = gray;
+ }
+ }
+ for (; y < (HEIGHT * 26) / 32; y++)
{
for (x = 0; x < WIDTH; x++)
{